home *** CD-ROM | disk | FTP | other *** search
/ CD Exchange / CD Exchange - Volume 1.iso / graphics / utils / videotracker / develop / sourceaga / equalizer.s < prev    next >
Encoding:
Text File  |  1994-01-21  |  44.0 KB  |  2,135 lines

  1.  
  2. ;rout            ;when this is off, the routine-file will be
  3.             ;assembled, on=testing
  4.             
  5. ;debug            ;when this is on, colors in the background will
  6.             ;show how much time the routine needs.
  7.  
  8. ;ntsctest        ;when this is on, the routineplayer is in ntsc-mode
  9.  
  10. ;ocs            ;off=AGA,on=OCS, testing not possible on OCS !
  11.  
  12. routinemode    equ    300    ;the routinemode !
  13.  
  14.  
  15. ; VideoTracker AGA developer source 25-12-93
  16. ; 24-bits colors, Super-HiRes, HAM8, maximum burstmode (64 pixels aligned)
  17. ; wich makes low-resolution overscan a bit ugly.
  18. ; no "interactive" support anymore, it's only used by Kick 1.3 users.
  19.  
  20. ; the first part of the source handles the things that are necessary to
  21. ; show the picture/copper and playing of the routine.
  22. ; the part between the "***" lines is the routine-source.
  23. ; at the bottom of the file, there are the necessary incbin-files who
  24. ; are needed to test the routine.
  25. ; these are saved with "save effect" in videotracker. they are raw
  26. ; data files which can be fonts,pictures,landscapes,vectorobjects
  27. ; etcetra.
  28. ; the incbin-files are put in the "variables" table, in the routine-
  29. ; player-handler
  30. ; the place where it's done can be found by searching for "!!!"
  31.  
  32.     opt    a+    ;devpac 3 optimize
  33.     opt    o+
  34.  
  35. vew_wid    equ    48
  36. vew_hgt    equ    290
  37. win_hgt    equ    117
  38. win_str    equ    $1a
  39.  
  40.         ifd    ocs
  41. pic_wid        equ    4        ;wide in bytes
  42. pic_hgt        equ    6        ;hoogte
  43. pic_dpt        equ    8        ;number planes
  44. pic_ani        equ    10        ;aantal effes (anim)
  45. pic_vew        equ    12        ;viewmode
  46. pic_cycstr    equ    14        ;cycle start (*4)
  47. pic_cycend    equ    15        ;cycle end (*4)
  48. pic_cycspd    equ    16        ;cycle speed (*4)
  49. pic_cycadd    equ    17        ;cycle add (*4)
  50. pic_palnum    equ    30        ;aantal kleuren
  51. pic_pal        equ    32        ;palette start
  52. pic_palsiz    equ    256*2        ;vaste palette size
  53. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  54.         endc
  55.         
  56.         ifnd    ocs
  57. pic_wid        equ    4        ;wide in bytes
  58. pic_hgt        equ    6        ;hoogte
  59. pic_dpt        equ    8        ;number planes
  60. pic_ani        equ    10        ;aantal effes (anim)
  61. pic_vew        equ    12        ;viewmode
  62. pic_cycstr    equ    14        ;cycle start (*8)
  63. pic_cycend    equ    15        ;cycle end (*8)
  64. pic_cycspd    equ    16        ;cycle speed (*8)
  65. pic_cycadd    equ    17        ;cycle add (*8)
  66. pic_widmod    equ    46        ;animation-width modulo
  67. pic_future    equ    50        ;free future space
  68. pic_palnum    equ    62        ;aantal kleuren
  69. pic_pal        equ    64        ;palette start
  70. pic_palsiz    equ    256*4        ;vaste palette size (longwords)
  71. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  72.         endc
  73.         
  74. var_len        equ    $300        ;lengte vartabel
  75.  
  76. var__GfxBase    equ    $000        ;graphics lib
  77. var_pic1    equ    $004        ;current picture
  78. var_anispd1    equ    $008        ;animspeed
  79. var_anitel1    equ    $00c        ;animcount
  80. var_cprbck    equ    $010        ;copperback
  81. var_bck        equ    $014        ;background
  82. var_pic2    equ    $018        ;current picture
  83. var_ntsc    equ    $01c        ;ntsc/pal frequence
  84. var_lnd        equ    $020        ;landscape
  85. var_anilop1    equ    $024
  86. var_rottrg    equ    $028        ;effect trigger
  87. var_txt1    equ    $040        ;text
  88. var_txt16    equ    15*4+var_txt1
  89. var_vec1    equ    $080        ;vectors
  90. var_vec16    equ    15*4+var_vec1
  91. var_fon1    equ    $0c0        ;fonts
  92. var_fon16    equ    15*4+var_fon1
  93. var_cols1    equ    $100        ;colorsets
  94. var_cols16    equ    15*4+var_cols1
  95. var_obj1    equ    $180        ;objects
  96. var_obj16    equ    15*4+var_obj1
  97.  
  98. var_audstr    equ    $1c0        ; start (*4) .l
  99. var_audlen    equ    $1c4        ; length (*4) .w
  100. var_audper    equ    $1c8        ; period (*4) .w
  101. var_audcnt    equ    $1cc        ; counter (*4) .w
  102. var_audlopstr    equ    $1d0        ; loop (*4) .w
  103. var_audreplen    equ    $1d4        ; loopstart (*4) .w
  104.  
  105. var_end        equ    $240
  106.  
  107.     ifd    rout
  108.     ;videotracker routine-test
  109.  
  110.     incdir    "videotracker:include/"
  111.     include    "exec/types.i"
  112.     include    "graphics/gfxbase.i"
  113.     include    "lvo/graphics_lib.i"
  114.     incdir    'videotracker:effect/'
  115.  
  116.     SECTION    1,CODE_C
  117. tus
  118. ;    move.l    #rotpt1,curpic1        ;picture !!!
  119. ;    move.l    #rotpt1,curpal1        ;picture !!!
  120.     bsr    paltabres
  121.     
  122.     move.l    ($4).w,a6
  123.     sub.l    a1,a1
  124.     jsr    -$126(a6)        ;findtask
  125.     move.l    d0,curtsk
  126.     move.l    d0,a0
  127.     move.l    $b8(a0),tskpri
  128.  
  129.     lea    dosnam,a1        ;doslib openen
  130.     moveq.l    #0,d0
  131.     move.l    (4).w,a6
  132.     jsr    -408(a6)        ;openlib
  133.     move.l    d0,doslib
  134.  
  135.     bsr.s    label5            ;videotracker opstarten
  136.     
  137.     move.l    curtsk,a0
  138.     move.l    tskpri,$b8(a0)
  139.     move.l    ($4).w,a6
  140.     jsr    -$84(a6)        ;forbid
  141.  
  142.     move.l    doslib,a1
  143.     move.l    (4).w,a6
  144.     jsr    -414(a6)        ;closelib
  145.  
  146.     moveq.l    #0,d0
  147.     rts
  148.     
  149. label5
  150.     move.l    (4).w,a6        ;workbench gedoe
  151.  
  152.     move.b    530(a6),ntscmode    ;50/60 hertz halen
  153.  
  154.     ifd    ntsctest
  155.     move.b    #60,ntscmode        ;60 hertz (ntsc)
  156.     endc
  157.  
  158.     cmp.b    #50,ntscmode        ;ntsc ?
  159.     beq.s    str.ntsc
  160.     move.l    #vew_hgt-56,hogscr    ;set NTSC screen hight
  161. str.ntsc
  162.  
  163.     lea    cprjmp,a2        ;copjmp zetten !
  164.     move.l    #cprbck-8,d0
  165.     move.w    d0,6(a2)
  166.     swap    d0
  167.     move.w    d0,2(a2)
  168.  
  169.     lea    cprbck-8,a2        ;copstr zetten !
  170.     move.l    #cpr,d0
  171.     move.w    d0,6(a2)
  172.     swap    d0
  173.     move.w    d0,2(a2)
  174.  
  175.     bsr    cprsprrem        ;sprites legen
  176.  
  177.     lea    gfxnam,a1        ;graphics lib openen
  178.     move.l    (4).w,a6
  179.     jsr    -408(a6)        ;openlib
  180.     move.l    d0,a6
  181.     move.l    d0,gfxlib
  182.     move.l    38(a6),oldcprlist
  183.  
  184.     bset    #1,$bfe001
  185.     bsr    copbuf            ;copper vullen
  186.  
  187.     bsr    sysoff
  188.  
  189. gadrun
  190.     btst    #6,($bfe001).l
  191.     bne    gadrun
  192.  
  193. scrend
  194. scrend.play
  195.     bsr    syson
  196.  
  197.     move.l    gfxlib,a1
  198.     move.l    (4).w,a6
  199.     jsr    -414(a6)        ;closelib
  200.  
  201. scrend.qb
  202.     moveq.l    #0,d0    
  203.     rts
  204.     
  205.     ;vertical blank interrupt, no blits.
  206.     ;handles counters,interlace,sprite
  207.     ;level 3
  208.  
  209. intvb
  210.     bra.s    intvb.cnt
  211.     dc.l    'VIDU'
  212.     dc.l    'LOOP'
  213. intvb.cnt
  214.     movem.l    d0-d7/a0-a6,-(sp)
  215.     lea    ($dff000).l,a6
  216.  
  217.     move.w    $01e(a6),d0
  218.     btst    #5,d0            ;vblank ?
  219.     bne.s    intvb.vb
  220.  
  221.     bra.s    intcop.end
  222.  
  223. intvb.vb
  224.     bsr    grap
  225.     bsr    palctr            ;palette zetten
  226.     bsr.s    copbuf            ;copper vullen
  227.     
  228. intvb.end
  229.     move.w    #$0020,$09c(a6)    ;vb bit wissen
  230.     movem.l    (sp)+,d0-d7/a0-a6    ;multitask uit, shit !
  231.     rte
  232.  
  233. intcop.end
  234.     movem.l    (sp)+,d0-d7/a0-a6
  235.     move.l    intvbold,-(sp)
  236.     rts
  237.  
  238.     ;transmission buffer empty routine, BLIT !
  239.     ;handles routines,animations
  240.     
  241. inttbe                    ;tbe interrupt
  242.     movem.l    d0-d7/a0-a6,-(sp)
  243.     lea    ($dff000).l,a6
  244.  
  245.     move.w    $01e(a6),d0
  246.     btst    #0,d0            ;no tbe ?
  247.     beq.s    intdskblk
  248.  
  249.  
  250.     btst    #6,($bfe001).l        ;muis ingedrukt ?
  251.     beq.s    inttbe.cop
  252.     btst    #2,($dff016).l
  253.     beq.s    inttbe.cop
  254.  
  255.     ifd    debug
  256.     move.w    #$700,$dff180
  257.     endc
  258.     
  259.     bsr    rotply            ;routineplayer BLIT !
  260.     bsr.s    copbuf            ;copper vullen
  261.  
  262.     ifd    debug
  263.     move.w    #$070,$dff180
  264.     endc
  265.     
  266. inttbe.cop
  267.  
  268. inttbe.end
  269.     move.w    #$0001,$09c(a6)
  270.     movem.l    (sp)+,d0-d7/a0-a6
  271.     rte
  272.  
  273. intdskblk
  274.     move.w    #$0001,$09c(a6)        ;be sure for no tbe handling
  275.     movem.l    (sp)+,d0-d7/a0-a6
  276.     move.l    inttbeold,-(sp)
  277.     rts
  278.  
  279.  
  280.     ;moves the copperbuffer to the copperlist
  281.     ;sort of double buffering
  282.     
  283. copbuf
  284.     movem.l    d0-d7/a0-a6,-(sp)
  285.  
  286.     lea    ($dff000).l,a6
  287.  
  288. copbuf.novb                ;copperchange overslaan
  289.     moveq.l    #0,d0
  290.     move.b    $005(a6),d0
  291.     lsl.w    #8,d0
  292.     moveq.l    #0,d1
  293.     move.b    $006(a6),d1
  294.     add.w    d1,d0
  295.  
  296.     cmp.w    #$4,d0            ;lower limit, all stations 100%
  297.     blt    copbuf.novb
  298.  
  299.     cmp.b    #50,ntscmode
  300.     beq.s    copbuf.pal
  301.     cmp.w    #$133-72-8,d0        ;ntsc grens
  302.     bge    copbuf.novb
  303.     bra.s    copbuf.cont
  304. copbuf.pal
  305.     cmp.w    #$133-8,d0        ;pal grens
  306.     bge    copbuf.novb
  307. copbuf.cont
  308.  
  309.     lea    gra.s,a0        ;buffer copieren
  310.     lea    cprbuf,a1
  311. copbuf_aga                ;AGA stuff :)
  312.     move.l    #(gra.ql)/4-1,d0
  313. copbuf.a
  314.     move.w    2(a0),2(a1)
  315.     add.l    #4,a0
  316.     add.l    #4,a1
  317.     dbra    d0,copbuf.a
  318.  
  319. copbuf.end
  320.     movem.l    (sp)+,d0-d7/a0-a6
  321.     rts
  322.  
  323.     ;goes back to the workbench
  324.     
  325. syson
  326.     movem.l    d0-d7/a0-a6,-(sp)
  327.  
  328.     move.w    #$0001,$dff09a        ;tbeint uit
  329.     move.l    intvbold,($6c).w
  330.     move.l    inttbeold,($64).w
  331.  
  332.     move.l    4,a6
  333.     jsr    -138(a6)        ;permit
  334.  
  335.     move.l    gfxlib,a6
  336.     jsr    -462(a6)        ;disownblitter
  337.  
  338.     move.l    wbview,a1
  339.     move.l    gfxlib,a6
  340.     jsr    _LVOLoadView(a6)     ; Fix view
  341.     jsr    _LVOWaitTOF(a6)
  342.     jsr    _LVOWaitTOF(a6)         ; wait for LoadView()
  343.  
  344. syson.ras
  345.     cmp.b    #$c0,$dff006        ;prevent copperjump
  346.     bne    syson.ras
  347.  
  348.     move.l    gfxlib,a6
  349.     move.l    gb_copinit(a6),$dff080     ; Kick it into life
  350.  
  351.     movem.l    (sp)+,d0-d7/a0-a6
  352.     rts
  353.     
  354.     ;goes back to the gadgetscreen
  355.     
  356. sysoff
  357.     movem.l    d0-d7/a0-a6,-(sp)
  358.      
  359.     move.l    gfxlib,a6
  360.     move.l    gb_ActiView(a6),wbview    ;current view
  361.     sub.l    a1,a1            ; clear a1
  362.     jsr     _LVOLoadView(a6)     ; Flush View to nothing
  363.     jsr    _LVOWaitTOF(a6)     ; Wait once
  364.     jsr    _LVOWaitTOF(a6)     ; Wait again.
  365.  
  366.     move.l    gfxlib,a6
  367.     jsr    -456(a6)        ;ownblitter
  368.  
  369.     move.l    4,a6
  370.     jsr    -132(a6)        ;forbid
  371.         
  372.     move.l    ($6c).w,intvbold
  373.     move.l    #intvb,($6c).w
  374.     move.l    ($64).w,inttbeold
  375.     move.l    #inttbe,($64).w
  376.     move.w    #$8001,$dff09a        ;tbeint aan
  377.     bsr    gracpr            ;reset copper
  378.     bsr    copbuf            ;copy copper
  379.     move.l    #cpr,$dff080
  380.  
  381.     movem.l    (sp)+,d0-d7/a0-a6
  382.     rts
  383.     
  384. cprsprrem
  385.     movem.l    d0-d7/a0-a6,-(sp)
  386.     lea    cprspr,a0
  387.     move.l    #sprdat,d0
  388.     move.w    #7,d1
  389. cprsprrem.a
  390.     move.w    d0,3*2(a0)
  391.     swap    d0
  392.     move.w    d0,1*2(a0)
  393.     swap    d0
  394.     add.l    #8,a0
  395.     dbra    d1,cprsprrem.a
  396.     movem.l    (sp)+,d0-d7/a0-a6
  397.     rts
  398.  
  399. varset                    ;variablen neerzetten
  400.     movem.l    d0-d7/a0-a6,-(sp)
  401.     move.l    #var,a0
  402.  
  403.     move.l    #cprbck,var_cprbck(a0)
  404.     move.l    gfxlib,var__GfxBase(a0)
  405.     move.b    ntscmode,var_ntsc(a0)
  406.  
  407.     move.l    curpic1,var_pic1(a0)    ;variabel
  408.     move.l    curpic2,var_pic2(a0)    ;variabel
  409.     move.w    anispd1,var_anispd1(a0)
  410.     move.w    anitel1,var_anitel1(a0)
  411.     move.b    anilop1,var_anilop1(a0)
  412.     move.l    #rottrg,var_rottrg(a0)
  413.     movem.l    (sp)+,d0-d7/a0-a6
  414.     rts
  415.     
  416.     ;this routine handles all videotracker-routines
  417.  
  418. rotply    
  419.     movem.l    d0-d7/a0-a6,-(sp)
  420.  
  421.     moveq.l    #0,d0
  422.  
  423.     lea    currot1,a2        ;routine 1
  424.     move.w    rotinf1,d0        ;routine info
  425.     bsr.s    rotplyr
  426.  
  427. rotply.end
  428.     movem.l    (sp)+,d0-d7/a0-a6
  429.     rts
  430.  
  431.     ;this routine handles 1 routine, BLIT !
  432.     
  433. rotplyr
  434.     movem.l    d0-d7/a1-a6,-(sp)
  435.  
  436.     move.l    #rot,(a2)        ;routinestart address !!!
  437.  
  438. ;    move.b    #50,ntscmode        ;ntsc/pal hz
  439.     clr.l    curpic2            ;background picture
  440.     move.w    #1,anispd1        ;animationspeed
  441.     clr.w    anitel1            ;animation position
  442.  
  443.     lea    var,a0            ;communication-table
  444. ;    move.l    #rotsrc,var_bck(a0)    ;colorset !!!
  445. ;    move.l    #rotst1,var_cols1+4(a0)    ;colorset !!!
  446. ;    move.l    #rotpt1,curpic1        ;picture !!!
  447. ;    move.l    #rotpt1,curpal1        ;picture !!!
  448. ;    move.b    #0,anilop1        ;animloop off/on !!!
  449. ;    move.w    #32,anispd1        ;animdelay !!!
  450.     move.l    #routinemode,d0        ;routinemode !!!
  451.  
  452.     sub.l    a0,a0            ;picture info legen
  453.  
  454.     tst.l    (a2)            ;is er een routine ?
  455.     beq    rotplyr.end        ;interlace handling
  456.  
  457.     move.l    intdel,d2        ;delay
  458.     move.l    inttel,d1        ;teller
  459.     cmp.w    d2,d1
  460.     blt    rotplyr.end
  461.     clr.l    inttel
  462.                 
  463.     bsr    varset            ;variabelen updaten
  464.  
  465.     move.l    (a2),a1            ;routine halen
  466.     move.l    #var,a0            ;variablen tabel
  467.  
  468.     movem.l    d3-d7/a1-a6,-(sp)
  469.     moveq.l    #0,d1            ;vars wissen
  470.     moveq.l    #0,d2
  471.     moveq.l    #0,d3
  472.     moveq.l    #0,d4
  473.     moveq.l    #0,d5
  474.     moveq.l    #0,d6
  475.     moveq.l    #0,d7
  476.     sub.l    a2,a2
  477.     sub.l    a3,a3
  478.     sub.l    a4,a4
  479.     sub.l    a5,a5
  480.  
  481.     jsr    4(a1)            ;routine afwerken
  482.     movem.l    (sp)+,d3-d7/a1-a6
  483.  
  484.     ;Routine:
  485.     ;
  486.     ;Input:
  487.     ;a0=variabelentabel
  488.     ;d0=routinemode
  489.     ;
  490.     ;Output:
  491.     ;a0=picture
  492.     ;d1=copperlist
  493.     ;d2=interruptdelay        (NOT used till now)
  494.     
  495.     move.w    #$0020,$dff09a        ;vb off !
  496.  
  497.     move.l    d2,intdel        ;delay
  498.  
  499.     lea    cprjmp,a3
  500.     move.l    #cprbck-8,d0
  501.  
  502.     cmp.l    (a2),a1            ;routine ondertussen gewipt ?
  503.     bne.s    rotplyr.nocop
  504.     tst.l    d1            ;copperlist ?
  505.     beq.s    rotplyr.nocop
  506.     move.l    d1,d0
  507. rotplyr.nocop
  508.     move.w    d0,6(a3)
  509.     swap    d0
  510.     move.w    d0,2(a3)
  511.  
  512.     cmp.l    #0,a0            ;picture ?
  513. ;    beq.s    rotplyr.endvb
  514.     beq.s    rotplyr.set
  515.  
  516.     move.l    a0,curpal1        ;current palette
  517.  
  518. ;    move.l    #rotpt1,a0        ;picture !!!
  519.  
  520.     move.l    (a0),a1
  521.     cmp.l    #'PALE',(a1)        ;palette ?
  522.     beq    rotplyr.set
  523.  
  524.     move.l    a0,curpic1        ;current picture (cycle)
  525.     tst.b    rotdpl            ;plane is geleverd
  526.     beq.s    rotplyr.set
  527.     clr.l    cycdel1            ;cycle info wissen
  528.     clr.l    4+cycdel1
  529.     clr.l    curfrm1            ;curfrm1, altijd planes zetten
  530. rotplyr.set
  531.     clr.b    rotdpl
  532.     clr.b    dplctr
  533.     bsr.s    grap
  534.     bsr    grac            ;colorset
  535. rotplyr.endvb
  536.     move.w    #$8020,$dff09a
  537. rotplyr.end
  538.     movem.l    (sp)+,d0-d7/a1-a6
  539.     rts
  540.  
  541.     ;removes possible routine-coppers
  542.     
  543. gracpr
  544.     movem.l    d0-d7/a0-a6,-(sp)
  545.     lea    cprjmp,a3
  546.     move.l    #cprbck-8,d0        ;copperlist resetten
  547.     move.w    d0,6(a3)
  548.     swap    d0
  549.     move.w    d0,2(a3)
  550.     movem.l    (sp)+,d0-d7/a0-a6
  551.     rts
  552.  
  553. grap                    ;d7=anim
  554.     movem.l    d0-d7/a0-a6,-(sp)
  555.  
  556.     clr.l    d7
  557.  
  558.     tst.l    curpic1            ;current picture ?
  559.     beq    grap.end
  560.  
  561.     move.l    curpic1,a2        ;normal pic halen
  562.  
  563.     lea    gracprscr,a1        ;window neerzetten
  564.     move.l    hogscr,d1
  565.  
  566.     move.w    pic_hgt(a2),d3        ;pic hoogte
  567.     move.w    pic_vew(a2),d5
  568.     btst    #2,d5            ;interlace ?
  569.     beq.s    grap.nohi4
  570.     lsr.w    #1,d3            ;/2
  571. grap.nohi4
  572.     cmp.w    d3,d1
  573.     bge.s    grap.hog
  574.     move.w    d1,d3
  575. grap.hog
  576.     sub.w    d3,d1
  577.     lsr.w    #1,d1
  578.     add.w    #win_str,d1
  579.     move.w    d1,d2
  580.     add.w    d3,d2
  581.  
  582.     move.b    d1,2(a1)        ;y start
  583.     move.b    d2,6(a1)        ;y end
  584.  
  585.     move.w    pic_wid(a2),d4        ;pic breedte in bytes
  586.     lsl.l    #3,d4
  587.  
  588.     move.l    #vew_wid*8,d0
  589.     move.l    #0,d1
  590.     move.l    #$61,d6
  591.  
  592.     cmp.w    #40,pic_wid(a2)        ;overscan ?
  593.     ble.s    grap.noov1
  594.     move.l    #$41,d6
  595. grap.noov1
  596.  
  597.     move.w    pic_vew(a2),d5
  598.     btst    #15,d5            ;hires ?
  599.     beq.s    grap.nohi2
  600.  
  601.     move.l    #(vew_wid)*8*2,d0
  602.     move.l    #1,d1
  603.     move.l    #$61,d6
  604.  
  605.     cmp.w    #80,pic_wid(a2)        ;overscan ?
  606.     ble.s    grap.nohi2
  607.     move.l    #(vew_wid)*8*2,d0
  608.     move.l    #$51,d6
  609.  
  610.     bra.s    grap.noshi2
  611. grap.nohi2    
  612.     btst    #6,d5            ;super hires ?
  613.     beq.s    grap.noshi2
  614.  
  615.     move.l    #(vew_wid)*8*4,d0
  616.     move.l    #2,d1
  617.     move.l    #$61,d6
  618.  
  619.     cmp.w    #80*2,pic_wid(a2)    ;overscan ?
  620.     ble.s    grap.noshi2
  621.     move.l    #(vew_wid)*8*4,d0
  622.     move.l    #$51,d6
  623.  
  624. grap.noshi2    
  625.  
  626.     clr.w    d5
  627.     cmp.w    d0,d4            ;breeder dan scherm ?
  628.     ble.s    grap.c
  629.     move.w    d4,d5
  630.     move.w    d0,d4
  631.     sub.w    d0,d5            ;modulo
  632.     lsr.w    #3,d5            ;/8
  633. grap.c
  634.     lsr.w    d1,d0
  635.     lsr.w    d1,d4
  636.  
  637.     move.w    d0,d2
  638.     sub.w    d4,d2
  639.     lsr.w    #1,d2            ;/2
  640.  
  641.     add.w    d6,d2
  642.     move.b    d2,3(a1)        ;x start
  643.     move.w    d2,d3            ;d3 bewaren !
  644.  
  645.     add.w    d4,d2            ;d4 bewaren !
  646.     move.b    d2,7(a1)        ;x end
  647.     
  648.     move.w    pic_vew(a2),d6
  649.     btst    #15,d6            ;hires ?
  650.     beq.s    grap.nohi5    
  651.     add.l    d4,d4            ;*2
  652.     bra.s    grap.noshi5
  653. grap.nohi5
  654.     btst    #6,d6            ;super hires ?
  655.     beq.s    grap.noshi5    
  656.     add.l    d4,d4            ;*4
  657.     add.l    d4,d4
  658. grap.noshi5
  659.  
  660.     move.l    d7,-(sp)
  661.     move.w    pic_vew(a2),d6
  662.     move.l    #17,d0
  663.     move.l    #4,d1            ;ecs 1
  664.     move.l    #3,d7
  665.  
  666.     btst    #15,d6            ;hires ?
  667.     beq.s    grap.nohi3    
  668.     move.l    #17,d0            ;ecs 9
  669.     move.l    #4,d1            ;ecs 2
  670.     move.l    #2,d7
  671.     bra.s    grap.noshi3
  672. grap.nohi3
  673.     btst    #6,d6            ;super hires ?
  674.     beq.s    grap.noshi3    
  675.     move.l    #17,d0            ;ecs 9
  676.     move.l    #4,d1            ;ecs 2
  677.     move.l    #1,d7
  678. grap.noshi3
  679.     sub.w    d0,d3
  680.     lsr.w    #1,d3
  681.     move.w    d3,10(a1)        ;ddfstrt
  682.     
  683.     move.w    d4,d2            ;pic breedte in pixels
  684.     lsr.w    #4,d2            ;/16
  685.     sub.w    d1,d2            ;-1
  686.  
  687.     lsl.w    d7,d2            ;*8
  688.     add.w    d2,d3
  689.     move.w    d3,14(a1)        ;ddfstop
  690.     move.l    (sp)+,d7
  691.     
  692.     lea    pic_raw(a2),a0
  693.  
  694.     moveq.l    #0,d2
  695.     move.w    pic_dpt(a2),d2
  696.     sub.l    #1,d2
  697.     muls    pic_wid(a2),d2
  698.     add.w    d2,d5
  699.  
  700.     move.w    pic_vew(a2),d2        ;viewmode add
  701.     btst    #2,d2
  702.     beq.s    grap.nolace4
  703.  
  704.     moveq.l    #0,d2
  705.     move.w    pic_dpt(a2),d2
  706.     muls    pic_wid(a2),d2
  707.     add.w    d2,d5            ;interlace gedoe
  708. grap.nolace4
  709.  
  710.     lea    gracprbpl,a4        ;iffpln neerzetten
  711.     lea    gracprpln,a0        ;iffpln neerzetten
  712.     moveq.l    #0,d2
  713.     move.w    pic_dpt(a2),d2        ;plnnummer 1 halen
  714.     move.l    #8,d6            ;copper step !
  715.  
  716.     tst.l    curpic2            ;2de picture ?
  717.     bne.s    grap.pic2
  718. grap.nopic2
  719.     move.w    d5,34(a1)        ;modulo oneven zetten
  720.     bra    grap.nodpl
  721. grap.pic2
  722.     move.l    curpic2,a3        ;oneven plane
  723.     move.l    curpic2+4,a6        ;oneven plane
  724.     move.l    currot2,a5        ;oneven plane
  725.     clr.l    curpic2            ;mischien niet goed
  726.     clr.l    curpic2+4        ;mischien niet goed
  727.     clr.l    curpal2            ;mischien niet goed
  728.     clr.l    currot2            ;mischien niet goed
  729.  
  730.     cmp.l    curpic1,a3        ;picture hetzelfde ?
  731.     beq.s    grap.nopic2
  732.     
  733.     cmp.l    #0,currot1        ;routine ?    
  734.     beq.s    grap.norot
  735.     cmp.l    currot1,a5        ;routine hetzelfde ?
  736.     beq.s    grap.nopic2
  737. grap.norot
  738.     cmp.b    #4,d2            ;> 16 kleuren ? (AGA)
  739.     bgt    grap.nopic2
  740.  
  741.     move.w    pic_dpt(a3),d3        ;plnnummer 2 halen
  742.     cmp.b    d2,d3            ;gelijke plnummers ?
  743.     bne.s    grap.nopic2
  744.     move.w    pic_vew(a2),d1
  745.     cmp.w    pic_vew(a3),d1        ;view gelijk ?
  746.     bne.s    grap.nopic2
  747.  
  748.     move.w    pic_vew(a2),d1        ;groter dan view test
  749.     btst    #6,d1            ;super hires ?
  750.     beq.s    grap.nohi2a
  751.     move.l    #vew_wid*4,d1
  752.     bra.s    grap.nohi2b
  753. grap.nohi2a
  754.     btst    #15,d1            ;hires ?
  755.     beq.s    grap.noshi2a
  756.     move.l    #vew_wid*2,d1
  757.     bra.s    grap.nohi2b
  758. grap.noshi2a
  759.     move.l    #vew_wid,d1
  760. grap.nohi2b
  761.     cmp.w    pic_wid(a2),d1        ;breder dan view ?
  762.     bgt.s    grap.small
  763.     cmp.w    pic_wid(a3),d1        ;breder dan view ?
  764.     bgt.s    grap.small
  765.  
  766.     move.w    pic_vew(a2),d1
  767.     btst    #2,d1
  768.     beq.s    grap.nolace8a
  769.     move.l    hogscr,d1
  770.     add.l    d1,d1
  771.     bra.s    grap.nolace8b
  772. grap.nolace8a
  773.     move.l    hogscr,d1
  774. grap.nolace8b
  775.     cmp.w    pic_hgt(a2),d1        ;hoger dan view ?
  776.     bgt.s    grap.small
  777.     cmp.w    pic_hgt(a3),d1        ;hoger dan view ?
  778.     bgt.s    grap.small
  779.     bra.s    grap.big
  780.  
  781. grap.small
  782.     move.w    pic_hgt(a2),d1        ;wid+hgt<vew
  783.     cmp.w    pic_hgt(a3),d1        ;hoogte gelijk ?
  784.     bne    grap.nopic2
  785.     move.w    pic_wid(a2),d1
  786.     cmp.w    pic_wid(a3),d1        ;breedte gelijk ?
  787.     bne    grap.nopic2
  788.  
  789. grap.big
  790.     move.l    a3,curpic2        ;toch wel goed !
  791.     move.l    a6,curpic2+4
  792.     move.l    a3,curpal2
  793.     move.l    a5,currot2
  794.  
  795.     tst.b    dplctr            ;dual playfield al gezet ?
  796.     beq    grap.nocop
  797.  
  798.     move.w    30(a1),34(a1)        ;modulo copieren
  799.  
  800.     move.w    2(a4),d1        ;bplcon0
  801.     btst    #10,d1            ;al dual playfield ?
  802.     beq.s    grap.ta
  803.  
  804.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  805.     move.w    6(a0),14(a0)
  806.  
  807.     move.w    18(a0),26(a0)        ;plane 2>3 copieren
  808.     move.w    22(a0),30(a0)
  809.  
  810.     move.w    34(a0),42(a0)        ;plane 4>5 copieren
  811.     move.w    38(a0),46(a0)
  812.  
  813.     move.w    50(a0),58(a0)        ;plane 6>7 copieren
  814.     move.w    54(a0),62(a0)
  815.  
  816.     bra.s    grap.tb
  817. grap.ta
  818.     move.w    24(a0),58(a0)        ;plane 3>7 copieren
  819.     move.w    28(a0),62(a0)
  820.  
  821.     move.w    18(a0),42(a0)        ;plane 2>5 copieren
  822.     move.w    22(a0),46(a0)
  823.  
  824.     move.w    10(a0),26(a0)        ;plane 1>3 copieren
  825.     move.w    14(a0),30(a0)
  826.  
  827.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  828.     move.w    6(a0),14(a0)
  829.  
  830. grap.tb
  831.     move.l    #palette,a3        ;palette copieren
  832.  
  833.     move.w    #16-1,d1
  834. grap.pal
  835.     move.l    (a3)+,60(a3)
  836.     dbra    d1,grap.pal
  837.  
  838. grap.nocop
  839.     add.w    d3,d2            ;aantal bitplanes
  840.     cmp.w    #8,d2            ;8 bitplanes ?
  841.     blt    grap.no8planes2
  842.     move.w    #%10000,d2        ;only bit 4
  843.     bra    grap.8planes2
  844. grap.no8planes2
  845.     lsl.w    #8,d2
  846.     lsl.w    #4,d2
  847. grap.8planes2
  848.     or.w    #$400,d2        ;dual playfield aan
  849.     move.w    d2,2(a4)        ;bplcon0
  850.  
  851.     movem.l    d0-d7/a0-a6,-(sp)
  852.  
  853.     move.l    curpic,a2        ;animpic ?
  854.     move.l    curfrm,d7
  855.     cmp.l    #0,a2
  856.     bne.s    grap.noanipic
  857.  
  858.     move.l    curpic2,a2        ;normal pic ?
  859.     move.l    curfrm2,d7
  860.     cmp.l    #0,a2
  861.     beq.s    grap.nodplpic
  862.  
  863. grap.noanipic
  864.     add.l    d6,a0
  865.     add.w    d6,d6
  866.     bsr.s    grappln            ;a2,d6,d7,d0
  867. grap.nodplpic
  868.     movem.l    (sp)+,d0-d7/a0-a6
  869.     add.w    d6,d6
  870.     bra.s    grap.nodpla
  871.  
  872.  
  873. grap.nodpl                ;geen dual playfield
  874.     cmp.w    #8,d2            ;8 bitplanes ?
  875.     blt    grap.no8planes
  876.     move.w    #%10000,d2        ;only bit 4
  877.     bra    grap.8planes
  878. grap.no8planes
  879.     lsl.w    #8,d2
  880.     lsl.w    #4,d2
  881. grap.8planes
  882.     move.w    d2,2(a4)        ;bplcon0
  883.  
  884. grap.nodpla
  885.     move.w    d5,30(a1)        ;modulo even
  886.  
  887.     moveq.l    #0,d3
  888.     add.w    pic_vew(a2),d3        ;viewmode add
  889.     moveq.l    #0,d2
  890.     move.w    2(a4),d2
  891.     or.l    d3,d2
  892.  
  893.     ifd    gui
  894.     tst.b    genlck
  895.     bne    grap.genset
  896.     endc
  897.  
  898.     or.l    #$100,d2        ;genlock off ($302)
  899.  
  900.     ifd    gui
  901.     bra    grap.gencont
  902. grap.genset
  903.     or.l    #$102,d2        ;genlock on ($302)
  904. grap.gencont
  905.     endc
  906.     
  907.     move.w    d2,2(a4)
  908.     
  909.     bsr.s    grappln            ;a2,d6,d7,d0
  910.  
  911. grap.end
  912.     
  913.     movem.l    (sp)+,d0-d7/a0-a6
  914.     rts
  915.         
  916.  
  917.     ;sets on of the 2 possible pictures to the copper
  918.     ;handles interlace
  919.  
  920.     ;d7=framenummer
  921.     ;d6=copperliststap
  922.     ;d0=raw planes positie
  923.     ;a2=current picture
  924. grappln                    ;planes invullen 
  925.     movem.l    d0-d7/a0-a6,-(sp)
  926.  
  927.     lea    pic_raw(a2),a1
  928.     move.l    a1,d0            ;raw planes
  929.     
  930.     moveq.l    #0,d2            ;x*y
  931.     move.w    pic_wid(a2),d2
  932.     lsr.l    #1,d2            ;/2
  933.     moveq.l    #0,d3
  934.     move.w    pic_hgt(a2),d3
  935.     muls    d3,d2
  936.     
  937.     move.l    d2,d4
  938.     add.l    d2,d2
  939.  
  940.     move.w    pic_dpt(a2),d3
  941.     muls    d3,d4            ;hele picture size
  942.     muls    d7,d4            ;frame*size d7 !
  943.  
  944.     add.l    d4,d4
  945.  
  946.     add.l    d4,d0
  947.  
  948.     move.l    #vew_wid,d5        ;max x view
  949.     move.l    hogscr,d4        ;max y view
  950.     move.w    pic_vew(a2),d1        ;viewmode add
  951.     btst    #2,d1
  952.     beq.s    grappln.nolace
  953.     add.l    d4,d4            ;max y view
  954. grappln.nolace
  955.     btst    #15,d1            ;hires ?
  956.     beq.s    grappln.nohi
  957.     move.l    #vew_wid*2,d5        ;max x view
  958.     bra.s    grappln.noshi
  959. grappln.nohi
  960.     btst    #6,d1            ;super hires ?
  961.     beq.s    grappln.noshi
  962.     move.l    #vew_wid*4,d5        ;max x view
  963. grappln.noshi
  964.  
  965.     moveq.l    #0,d3            ;scherm centreren
  966.     move.w    pic_wid(a2),d3        ;pic breedte in bytes
  967.     cmp.w    d5,d3            ;breder dan scherm ?
  968.     ble.s    grappln.qa
  969.     sub.w    d5,d3            ;-scherm breedte
  970.     lsr.w    #2,d3            ;/4
  971.  
  972.     add.l    d3,d3
  973.  
  974.     add.l    d3,d0
  975. grappln.qa
  976.     move.w    pic_hgt(a2),d3        ;pic hoogte in bytes
  977.     cmp.w    d4,d3            ;hoger dan scherm ?
  978.     ble.s    grappln.qb
  979.     sub.w    d4,d3            ;-scherm breedte
  980.     lsr.w    #1,d3            ;/2
  981.     moveq.l    #0,d5
  982.     move.w    pic_wid(a2),d5        ;pic breedte in bytes
  983.     muls    pic_dpt(a2),d5
  984.     muls    d5,d3
  985.     add.l    d3,d0
  986. grappln.qb
  987.     moveq.l    #0,d2
  988.     move.w    pic_wid(a2),d2
  989.  
  990.     move.w    pic_vew(a2),d5        ;interlace flipping ?
  991.     btst    #2,d5
  992.     beq.s    grappln.nolac7b
  993.  
  994.     move.w    $04(a6),d5        ;even/oneven ?
  995.     btst    #15,d5
  996.     beq.s    grappln.nolac7b
  997.     
  998.     moveq.l    #0,d3
  999.     move.w    pic_wid(a2),d3
  1000.     muls    pic_dpt(a2),d3
  1001.     add.l    d3,d0
  1002. grappln.nolac7b
  1003.  
  1004.     move.w    pic_dpt(a2),d1        ;plnnummer 1 halen
  1005.     tst.w    d1            ;0 planes ?
  1006.     beq    grappln.end
  1007.     sub.w    #1,d1
  1008. grappln.a
  1009.     move.w    d0,3*2(a0)
  1010.     swap    d0
  1011.     move.w    d0,1*2(a0)
  1012.     swap    d0
  1013.     add.l    d6,a0            ;d6=copper step !
  1014.     add.l    d2,d0
  1015.     dbra    d1,grappln.a
  1016.  
  1017.     cmp.w    #8,pic_dpt(a2)        ;8 planes ?
  1018.     bne    grappln.noham8
  1019.     btst    #3,pic_vew(a2)        ;ham ?
  1020.     beq    grappln.noham8
  1021.  
  1022.     move.w    -14(a0),d0        ;get 6
  1023.     move.w    -10(a0),d1
  1024.     move.w    -6(a0),d2        ;get 7
  1025.     move.w    -2(a0),d3
  1026.     move.w    -18(a0),-2(a0)        ;5>7
  1027.     move.w    -22(a0),-6(a0)        ;5>7
  1028.     move.w    -26(a0),-10(a0)        ;4>6
  1029.     move.w    -30(a0),-14(a0)        ;4>6
  1030.     move.w    -34(a0),-18(a0)        ;3>5
  1031.     move.w    -38(a0),-22(a0)        ;3>5
  1032.     move.w    -42(a0),-26(a0)        ;2>4
  1033.     move.w    -46(a0),-30(a0)        ;2>4
  1034.     move.w    -50(a0),-34(a0)        ;1>3
  1035.     move.w    -54(a0),-38(a0)        ;1>3
  1036.     move.w    -58(a0),-42(a0)        ;0>2
  1037.     move.w    -62(a0),-46(a0)        ;0>2
  1038.     move.w    d0,-62(a0)        ;6>0
  1039.     move.w    d1,-58(a0)        ;6>0
  1040.     move.w    d2,-54(a0)        ;7>1
  1041.     move.w    d3,-50(a0)        ;7>1
  1042. grappln.noham8
  1043.  
  1044. grappln.end
  1045.     movem.l    (sp)+,d0-d7/a0-a6
  1046.     rts
  1047.  
  1048.     ;sets palettes to palette-buffer
  1049.     
  1050. grac
  1051.     movem.l    d0-d7/a0-a6,-(sp)
  1052.  
  1053.     lea    curpal1,a3        ;palette 1
  1054.     move.l    #palette,a1
  1055.     bsr.s    gracfrm
  1056.  
  1057.     lea    curpal2,a3        ;palette 2 (dpl)
  1058.     move.l    #16*4+palette,a1
  1059.     bsr.s    gracfrm
  1060.     
  1061.     bsr    palctr            ;palette-buffer to copper
  1062. grac.end
  1063.     movem.l    (sp)+,d0-d7/a0-a6
  1064.     rts
  1065.         
  1066.     ;moves palette from picture to palette-buffer
  1067.  
  1068. gracfrm
  1069.     movem.l    d0-d7/a0-a6,-(sp)
  1070.     tst.l    (a3)            ;palette aanwezig ?
  1071.     beq.s    gracfrm.end
  1072.  
  1073.     move.l    (a3),a2            ;current palette
  1074.     
  1075.     cmp.l    #'PALE',(a2)        ;palette ?
  1076.     bne.s    gracfrm.pict
  1077.     lea    6(a2),a0        ;palette
  1078.     move.w    4(a2),d0        ;aantal kleuren
  1079.     bra.s    gracfrm.col
  1080. gracfrm.pict
  1081.     cmp.l    #'ANIM',(a2)        ;animatie ?
  1082.     bne.s    gracfrm.noanim
  1083.  
  1084.     moveq.l    #0,d1
  1085.     move.w    pic_ani(a2),d1
  1086.     bclr    #7,d1            ;behandelbit weghalen
  1087.  
  1088.     moveq.l    #0,d3
  1089.     move.w    pic_wid(a2),d3
  1090.     lsr.w    #1,d3            ;/2
  1091.     muls    pic_hgt(a2),d3
  1092.     muls    pic_dpt(a2),d3
  1093.  
  1094.     add.l    d3,d3
  1095.  
  1096.     add.l    #pic_raw,d3
  1097.     move.l    d3,d5
  1098.  
  1099.     btst    #0,d1
  1100.     bne.s    gracfrm.buf2
  1101.     moveq.l    #0,d5
  1102. gracfrm.buf2
  1103.     add.l    d5,a2
  1104. gracfrm.noanim
  1105.     lea    pic_pal(a2),a0        ;palette
  1106.     move.w    pic_palnum(a2),d0
  1107.  
  1108.     tst.w    d0            ;0 planes ?
  1109.     beq.s    gracfrm.end
  1110. gracfrm.col
  1111. gracfrm.fa
  1112.     move.l    (a0)+,(a1)+
  1113.     dbra    d0,gracfrm.fa
  1114. gracfrm.end
  1115.     movem.l    (sp)+,d0-d7/a0-a6
  1116.     rts
  1117.     
  1118.     ;handles colorcycling in the palette-buffer
  1119.  
  1120. palcycctr
  1121.     movem.l    d0-d7/a0-a6,-(sp)
  1122.  
  1123.     move.l    curpic1,a2        ;current raw
  1124.     cmp.l    #0,a2
  1125.     beq.s    palcycctr.qb
  1126.     lea    cycdel1,a3        ;cycle delays
  1127.     move.l    #paltab,a4
  1128.     bsr    palcyc
  1129. palcycctr.qb
  1130.     move.l    curpic2,a2        ;current raw
  1131.     cmp.l    #0,a2
  1132.     beq.s    palcycctr.c
  1133.     lea    cycdel2,a3        ;cycle delays
  1134.     move.l    #16*2+paltab,a4
  1135.     bsr    palcyc
  1136. palcycctr.c
  1137.     movem.l    (sp)+,d0-d7/a0-a6
  1138.     rts
  1139.     
  1140.     ;copies palette-buffer to copper
  1141.  
  1142. palctr
  1143.     movem.l    d0-d7/a0-a6,-(sp)
  1144.  
  1145.     lea    gracprcol,a1        ;AGA
  1146.     move.l    #palette,a0
  1147.     move.l    #paltab,a2
  1148.     move.w    #8-1,d6
  1149. palctr.e
  1150.     move.w    #32-1,d7
  1151. palctr.d
  1152.     move.w    (a2)+,d0            ;get cycle-position
  1153.     move.w    (a0,d0),6(a1)            ;high RGB bits
  1154.     move.w    2(a0,d0),((32+1)*4)+6(a1)    ;low RGB bits
  1155.     add.l    #4,a1
  1156.     dbra    d7,palctr.d
  1157.     add.l    #((32+2)*4),a1
  1158.     dbra    d6,palctr.e
  1159. palctr.end
  1160.     movem.l    (sp)+,d0-d7/a0-a6
  1161.     rts
  1162.  
  1163.     ;reset palette tabel, for proper color cycling
  1164.  
  1165. paltabres
  1166.     movem.l    d0-d7/a0-a6,-(sp)
  1167.     lea    paltab,a0
  1168.     clr.l    d0
  1169.     move.w    #256-1,d1
  1170. paltabres.a
  1171.     move.w    d0,(a0)+
  1172.     add.w    #4,d0            ;aga color words, high RGB + low RGB
  1173.     dbra    d1,paltabres.a
  1174. paltabres.end
  1175.     movem.l    (sp)+,d0-d7/a0-a6
  1176.     rts
  1177.  
  1178.     ;colorcyclinghandling of a palette
  1179.  
  1180. palcyc
  1181.     movem.l    d0-d7/a0-a6,-(sp)
  1182.     move.w    #4-1,d7            ;4 cycles
  1183. palcyc.d
  1184.     tst.w    (a3)+            ;delay klaar ?
  1185.     bne.s    palcyc.c
  1186.     
  1187.     moveq.l    #0,d1
  1188.     move.b    pic_cycstr(a2),d1    ;start color
  1189.     lsl.b    #1,d1        ;*2
  1190.  
  1191.     moveq.l    #0,d2
  1192.     move.b    pic_cycend(a2),d2    ;end color
  1193.     lsl.b    #1,d2        ;*2
  1194.  
  1195.     moveq.l    #0,d3
  1196.     move.b    pic_cycadd(a2),d3    ;richting
  1197.  
  1198.     move.l    a4,a0            ;palette pointer
  1199.     move.l    a0,a1
  1200.     add.l    d1,a0            ;startcolor
  1201.     add.l    d2,a1            ;endcolor
  1202.     
  1203.     cmp.b    #1,d3            ;omhoog
  1204.     beq.s    palcyc.up    
  1205.     cmp.b    #3,d3            ;omlaag
  1206.     beq.s    palcyc.down
  1207.     bra.s    palcyc.i
  1208.  
  1209. palcyc.up                ;kleuren copieren
  1210.     move.w    (a1),d4            ;laatst color bewaren
  1211. palcyc.f                ;kleuren copieren
  1212.     cmp.l    a0,a1
  1213.     beq.s    palcyc.fa
  1214.     move.w    -(a1),2(a1)
  1215.     bra.s    palcyc.f
  1216. palcyc.fa
  1217.     move.w    d4,(a1)
  1218.     bra.s    palcyc.g    
  1219.     
  1220. palcyc.down
  1221.     move.w    (a0),d4            ;laatst color bewaren
  1222. palcyc.h                ;kleuren copieren
  1223.     cmp.l    a0,a1
  1224.     beq.s    palcyc.ha
  1225.     move.w    2(a0),(a0)+
  1226.     bra.s    palcyc.h
  1227. palcyc.ha
  1228.     move.w    d4,(a1)
  1229.  
  1230. palcyc.g
  1231.     move.b    pic_cycspd(a2),-1(a3)    ;delay zetten
  1232.     bra.s    palcyc.i
  1233. palcyc.c
  1234.     sub.w    #1,-2(a3)        ;cycle delay aftellen
  1235. palcyc.i
  1236.     add.l    #4,a2            ;next cycle info
  1237.     dbra    d7,palcyc.d
  1238.  
  1239. palcyc.qb
  1240.     movem.l    (sp)+,d0-d7/a0-a6
  1241.     rts
  1242.  
  1243.  
  1244.  
  1245. ;    SECTION    variabelen,DATA_c
  1246.  
  1247.     cnop    0,2
  1248. curtsk        dc.l    0
  1249. tskpri        dc.l    0
  1250. duplok        dc.l    0
  1251. inttel        dc.l    0
  1252. intdel        dc.l    0
  1253.  
  1254. form        dc.l    0
  1255. ifffil        dc.l    0
  1256. intvbold    dc.l    0
  1257. inttbeold    dc.l    0
  1258. patpos        dc.l    0
  1259. gfxlib        dc.l    0
  1260. doslib        dc.l    0
  1261. wbview      dc.l    0
  1262. mt_data        dc.l    0
  1263. memvid        dc.l    0
  1264. oldcprlist    dc.l    0
  1265. hogscr        dc.l    vew_hgt
  1266.  
  1267. inspos        dc.l    -1
  1268. anispd1        dc.w    1    ;nooit op 0 !
  1269. anispd2        dc.w    1
  1270.  
  1271.         cnop    0,2
  1272. varclr.s            ;start wissen
  1273. oldrot        dc.l    0
  1274. curpic        dc.l    0
  1275. curfrm        dc.l    0
  1276. cycdel1        ds.w    4
  1277. cycdel2        ds.w    4
  1278.  
  1279. rotinf1        dc.w    0
  1280. rotinf2        dc.w    0
  1281.  
  1282. effspd        dc.w    0
  1283. efflop        dc.b    0
  1284. anilop1        dc.b    0
  1285. anilop2        dc.b    0
  1286. anipal1        dc.b    0
  1287. anipal2        dc.b    0
  1288. rotdpl        dc.b    1
  1289. rottrg        dc.b    1
  1290. dplctr        dc.b    0
  1291.         cnop    0,2
  1292.  
  1293. insdat        ds.l    4
  1294. inspri        dc.l    0
  1295. instel        dc.w    0
  1296.  
  1297. cureff        dc.l    0
  1298. efftel        dc.w    0
  1299.  
  1300. curpal1        dc.l    0
  1301. curpal2        dc.l    0
  1302. currot1        dc.l    0
  1303. currot2        dc.l    0
  1304. curpic1        dc.l    0
  1305. curpic2        dc.l    0
  1306. anitel1        dc.w    0
  1307. anitel2        dc.w    0
  1308. curfrm1        dc.l    0
  1309. curfrm2        dc.l    0
  1310. oldfrm1        dc.l    0
  1311. oldfrm2        dc.l    0
  1312.  
  1313. varclr.e
  1314.         dc.l    0            ;wisruimte
  1315.     
  1316. varclr.ql    equ    varclr.e-varclr.s    ;wislengte
  1317.     
  1318. ntscmode    dc.b    0
  1319. end        dc.b    0
  1320.  
  1321. pronam    dc.b    'VideoTracker',0
  1322.     cnop    0,2
  1323. dosnam    dc.b    'dos.library',0
  1324.     cnop    0,4
  1325. gfxnam    dc.b    'graphics.library',0
  1326.     cnop    0,4
  1327.     
  1328.     cnop    0,4
  1329. gra.s            ;copperlist edit buffer
  1330. gracprscr
  1331.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1332. gracprbpl
  1333.     dc.w    $100,$0000,$102,$0000,$104,$0020
  1334.     dc.w    $108,$0000,$10a,$0000,$1fc,$0003
  1335. gracprpln
  1336.     dc.w    $e0,$0000,$e2,$0000    ;1
  1337.     dc.w    $e4,$0000,$e6,$0000    ;2
  1338.     dc.w    $e8,$0000,$ea,$0000    ;3
  1339.     dc.w    $ec,$0000,$ee,$0000    ;4
  1340.     dc.w    $f0,$0000,$f2,$0000    ;5
  1341.     dc.w    $f4,$0000,$f6,$0000    ;6
  1342.     dc.w    $f8,$0000,$fa,$0000    ;7
  1343.     dc.w    $fc,$0000,$fe,$0000    ;8
  1344. gracprcol
  1345.     dc.w    $106,$0000
  1346.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1347.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1348.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1349.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1350.     dc.w    $106,$0200
  1351.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1352.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1353.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1354.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1355.  
  1356.     dc.w    $106,$2000
  1357.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1358.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1359.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1360.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1361.     dc.w    $106,$2200
  1362.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1363.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1364.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1365.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1366.  
  1367.     dc.w    $106,$4000
  1368.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1369.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1370.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1371.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1372.     dc.w    $106,$4200
  1373.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1374.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1375.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1376.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1377.  
  1378.     dc.w    $106,$6000
  1379.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1380.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1381.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1382.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1383.     dc.w    $106,$6200
  1384.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1385.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1386.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1387.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1388.  
  1389.     dc.w    $106,$8000
  1390.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1391.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1392.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1393.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1394.     dc.w    $106,$8200
  1395.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1396.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1397.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1398.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1399.  
  1400.     dc.w    $106,$a000
  1401.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1402.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1403.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1404.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1405.     dc.w    $106,$a200
  1406.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1407.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1408.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1409.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1410.  
  1411.     dc.w    $106,$c000
  1412.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1413.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1414.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1415.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1416.     dc.w    $106,$c200
  1417.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1418.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1419.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1420.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1421.  
  1422.     dc.w    $106,$e000
  1423.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1424.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1425.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1426.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1427.     dc.w    $106,$e200
  1428.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1429.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1430.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1431.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1432.  
  1433.     dc.w    $106,$1000
  1434.  
  1435. cprjmp
  1436.     dc.w    $080,0,$082,0
  1437. gra.e
  1438. gra.ql    equ    gra.e-gra.s        ;block lengte
  1439.  
  1440. cpr                    ;real copperlist
  1441.     dc.w    $0001,$fffe
  1442.     dc.w    $09c,$8001        ;tbeint
  1443. cprspr
  1444.     dc.w    $120,$0000,$122,$0000
  1445.     dc.w    $124,$0000,$126,$0000
  1446.     dc.w    $128,$0000,$12a,$0000
  1447.     dc.w    $12c,$0000,$12e,$0000
  1448.     dc.w    $130,$0000,$132,$0000
  1449.     dc.w    $134,$0000,$136,$0000
  1450.     dc.w    $138,$0000,$13a,$0000
  1451.     dc.w    $13c,$0000,$13e,$0000
  1452.  
  1453. cprbuf
  1454.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1455.     dc.w    $100,$9000,$102,$0000,$104,$0020
  1456.     dc.w    $108,$0000,$10a,$0000,$1fc,$0003
  1457.  
  1458.     dc.w    $e0,$0000,$e2,$0000    ;0
  1459.     dc.w    $e4,$0000,$e6,$0000    ;1
  1460.     dc.w    $e8,$0000,$ea,$0000    ;2
  1461.     dc.w    $ec,$0000,$ee,$0000    ;3
  1462.     dc.w    $f0,$0000,$f2,$0000    ;4
  1463.     dc.w    $f4,$0000,$f6,$0000    ;5
  1464.     dc.w    $f8,$0000,$fa,$0000    ;6
  1465.     dc.w    $fc,$0000,$fe,$0000    ;7
  1466.  
  1467.     dc.w    $106,$0000
  1468.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1469.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1470.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1471.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1472.     dc.w    $106,$0200
  1473.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1474.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1475.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1476.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1477.  
  1478.     dc.w    $106,$2000
  1479.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1480.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1481.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1482.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1483.     dc.w    $106,$2200
  1484.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1485.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1486.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1487.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1488.  
  1489.     dc.w    $106,$4000
  1490.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1491.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1492.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1493.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1494.     dc.w    $106,$4200
  1495.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1496.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1497.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1498.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1499.  
  1500.     dc.w    $106,$6000
  1501.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1502.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1503.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1504.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1505.     dc.w    $106,$6200
  1506.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1507.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1508.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1509.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1510.  
  1511.     dc.w    $106,$8000
  1512.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1513.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1514.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1515.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1516.     dc.w    $106,$8200
  1517.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1518.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1519.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1520.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1521.  
  1522.     dc.w    $106,$a000
  1523.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1524.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1525.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1526.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1527.     dc.w    $106,$a200
  1528.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1529.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1530.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1531.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1532.  
  1533.     dc.w    $106,$c000
  1534.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1535.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1536.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1537.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1538.     dc.w    $106,$c200
  1539.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1540.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1541.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1542.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1543.  
  1544.     dc.w    $106,$e000
  1545.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1546.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1547.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1548.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1549.     dc.w    $106,$e200
  1550.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1551.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1552.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1553.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1554.  
  1555.     dc.w    $106,$1000
  1556.  
  1557.     dc.w    $080,0,$082,0
  1558. cprbuf.e
  1559.  
  1560.     dc.w    $088,$0000        ;copjmp2
  1561.     dc.w    $080,0,$082,0        ;moet achter cprbck blijven !
  1562. cprbck
  1563. sprdat
  1564.     dc.w    $ffff,$fffe
  1565.  
  1566. palette        ds.l    256        ;palette 24-bits, far out !
  1567. paltab        ds.w    256        ;palette cycle-tabel
  1568.  
  1569.     cnop    0,2
  1570. var    ds.b    $300    ;variabelen voor routines
  1571.  
  1572.     
  1573. ;    SECTION    10,CODE_C
  1574.         endc
  1575.  
  1576. ; this is the routine-source
  1577. ;**********************************************************************
  1578.  
  1579.  
  1580. rotpic_x    equ    40
  1581. rotpic_y    equ    vew_hgt
  1582. rotpic_d    equ    1
  1583.  
  1584. rotcop_y    equ    vew_hgt
  1585.         
  1586. ;    Input:
  1587. ;    a0=variabelen tabel
  1588. ;    d0=routinfo
  1589.  
  1590. ;    Output:
  1591. ;    a0=picture
  1592. ;    d1=copperlist
  1593.  
  1594.     SECTION    3,CODE_C
  1595.  
  1596. rot
  1597.     ifnd    ocs
  1598.     dc.l    'ROT2'
  1599.     endc
  1600.     ifd    ocs
  1601.     dc.l    'ROUT'
  1602.     endc
  1603.     movem.l    d2-d7/a1-a6,-(sp)
  1604.  
  1605.     lea    ($dff000).l,a6        ;hardware
  1606.     lea    rot,a5            ;prog base
  1607.  
  1608. ;    move.l    #32768,d2
  1609. ;    bsr    getd7
  1610.  
  1611. ;rot.ea    
  1612. ;    move.l    #4,d2            ;hoogte
  1613. ;    bsr    getd7
  1614. ;    muls    #1380,d7
  1615. ;    move.l    d7,variabele1-rot(a5)
  1616.  
  1617. ;    move.l    #1,d2            ;breedte
  1618. ;    bsr    getd7
  1619. ;    muls    #6,d7
  1620. ;    move.l    d7,variabele7-rot(a5)
  1621.  
  1622. rot.end
  1623. ;    move.l    var_cprbck(a0),d1
  1624. ;    sub.l    #8,d1
  1625. ;    lea    rotcop1,a1        ;copperjump adres zetten
  1626. ;    move.l    rotbuf-rot(a5),d2    ;double buffer
  1627. ;    add.l    d2,a1
  1628. ;    move.w    d1,6(a1)
  1629. ;    swap    d1
  1630. ;    move.w    d1,2(a1)
  1631. ;    move.l    a1,a2
  1632. ;    add.l    #rotcprbck1ntsc,a2
  1633. ;    move.l    a1,a3
  1634. ;    add.l    #rotcprend1ntsc,a3
  1635. ;    move.l    a1,a4
  1636. ;    add.l    #rotcprbck1,a4
  1637.  
  1638. ;cop_str            equ    win_str-2
  1639. ;rotcprbck1_v        equ    (cop_str+rotpic_y-124)*$1000000+$29fffe
  1640. ;rotcprbck1ntsc_v    equ    (cop_str+rotpic_y-180)*$1000000+$29fffe
  1641. ;rotcprend1ntsc_v    equ    (cop_str+rotpic_y-60)*$1000000+$29fffe
  1642.  
  1643. ;    cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1644. ;    bne    rot.ntsc
  1645. ;    move.l    #rotcprbck1ntsc_v,(a2)    ;reset ntsc split (cprbck1ntsc)
  1646. ;    move.l    #rotcprend1ntsc_v,(a3)    ;reset ntsc end (cprend1ntsc)
  1647. ;    add.l    #rotcprbck1,a1
  1648. ;    move.l    #rotcprbck1_v,d0    ;pal split (cprbck1)
  1649. ;    bra    rot.split
  1650. ;rot.ntsc
  1651. ;    move.l    #rotcprbck1_v,(a4)    ;reset pal split (cprbck1)
  1652. ;    move.l    #$00880000,(a3)        ;set ntsc end (cprend1ntsc)
  1653. ;    add.l    #rotcprbck1ntsc,a1
  1654. ;    move.l    #rotcprbck1ntsc_v,d0    ;(cprbck1ntsc)
  1655. ;rot.split
  1656. ;    move.l    #$00880000,(a1)        ;set break
  1657. ;    move.l    var_cprbck(a0),a2
  1658. ;    cmp.b    #$ff,(a2)        ;menu uit ?
  1659. ;    bne    rot.a
  1660. ;    move.l    d0,(a1)
  1661. ;rot.a
  1662. ;    bsr    rotint            ;eventueel init
  1663.  
  1664.     bsr    rotvew
  1665.  
  1666.     lea    rotpic,a0        ;picture
  1667.  
  1668.     add.l    rotbuf-rot(a5),a0
  1669.     eor.l    #rotpic.e-rotpic,rotbuf-rot(a5)
  1670.  
  1671.     clr.l    d1
  1672.     
  1673. ;    move.l    a5,d1
  1674. ;    add.l    #rotcop1-rot,d1        ;copperlist
  1675.     
  1676.     movem.l    (sp)+,d2-d7/a1-a6
  1677.     rts
  1678.  
  1679. getd7
  1680.     move.w    d0,d1
  1681.     divs    d2,d1
  1682.     and.l    #$ffff,d1
  1683.     move.l    d1,d7
  1684.     muls    d2,d1
  1685.     sub.w    d1,d0
  1686.     move.l    d0,d6
  1687.     add.l    #1,d7
  1688.     rts
  1689.  
  1690. ;rotint
  1691. ;    movem.l    d0-d7/a0-a6,-(sp)
  1692. ;
  1693. ;    move.l    a5,a1
  1694. ;    add.l    #rotcoptus.s-rot,a1
  1695. ;    tst.b    (a1)            ;init copper ?
  1696. ;    bne    rotint.end
  1697. ;
  1698. ;    move.l    #cop_str,d1
  1699. ;    
  1700. ;    move.w    #rotcop_y-1,d0
  1701. ;rotint.g
  1702. ;    move.b    d1,(a1)            ;y-raster
  1703. ;
  1704. ;    add.l    #rotcoptus_l,a1
  1705. ;    add.l    #1,d1
  1706. ;
  1707. ;    dbra    d0,rotint.g
  1708. ;
  1709. ;rotint.end    
  1710. ;    movem.l    (sp)+,d0-d7/a0-a6
  1711. ;    rts
  1712.  
  1713. rotvew
  1714.     movem.l    d0-d7/a0-a6,-(sp)
  1715.  
  1716.     lea    rotpic,a3
  1717.     add.l    rotbuf-rot(a5),a3
  1718.     lea    pic_raw(a3),a3
  1719.  
  1720.     move.w    #0,$042(a6)            ;clear screen
  1721.     move.w    #$100+$f0,$040(a6)
  1722.  
  1723.     move.w    #0,$064(a6)
  1724.     move.w    #0,$066(a6)
  1725.  
  1726.     move.w    #0,$074(a6)            ;a dat
  1727.     move.l    #0,$044(a6)            ;mask
  1728.  
  1729.     move.l    a3,$054(a6)            ;destination
  1730.     move.w    #rotpic_y*64+(rotpic_x/2),$058(a6)
  1731. rotvew.wblit
  1732.     btst     #6,$002(a6)
  1733.     bne     rotvew.wblit
  1734.  
  1735.     bsr    rotpix
  1736.  
  1737. rotvew.end    
  1738.     movem.l    (sp)+,d0-d7/a0-a6
  1739.     rts
  1740.  
  1741. rotpix
  1742.     movem.l    d0-d7/a0-a6,-(sp)
  1743.  
  1744. ;    move.l    a5,d7
  1745. ;    add.l    #rotemp-rot,d7
  1746.     
  1747.     move.l    var_audstr(a0),a2
  1748.     move.l    var_audreplen(a0),d3
  1749.     cmp.l    #1,d3
  1750.     bne    rotpix.d1
  1751.     move.l    var_audlen(a0),d3
  1752. rotpix.d1
  1753.     add.l    d3,d3
  1754.     add.l    var_audlopstr(a0),d3
  1755.  
  1756.     move.l    #34642*2,d2
  1757.     tst.l    var_audper(a0)
  1758.     beq    rotpix.c1
  1759.     divs.w    2+var_audper(a0),d2
  1760.     ext.l    d2
  1761.     add.l    d2,var_audcnt(a0)
  1762.     move.l    var_audcnt(a0),d2
  1763.     add.l    d2,a2
  1764. rotpix.c1
  1765.         
  1766.     move.l    var_audstr+$20(a0),a4
  1767.     move.l    var_audreplen+$20(a0),d4
  1768.     cmp.l    #1,d4
  1769.     bne    rotpix.d2
  1770.     move.l    var_audlen+$20(a0),d4
  1771. rotpix.d2
  1772.     add.l    d4,d4
  1773.     add.l    var_audlopstr+$20(a0),d4
  1774.  
  1775.     move.l    #34642*2,d2
  1776.     tst.l    var_audper+$20(a0)
  1777.     beq    rotpix.c2
  1778.     divs.w    2+var_audper+$20(a0),d2
  1779.     ext.l    d2
  1780.     add.l    d2,var_audcnt+$20(a0)
  1781.     move.l    var_audcnt+$20(a0),d2
  1782.     add.l    d2,a4
  1783. rotpix.c2
  1784.         
  1785.     move.l    var_audstr+$40(a0),a5
  1786.     move.l    var_audreplen+$40(a0),d5
  1787.     cmp.l    #1,d5
  1788.     bne    rotpix.d3
  1789.     move.l    var_audlen+$40(a0),d5
  1790. rotpix.d3
  1791.     add.l    d5,d5
  1792.     add.l    var_audlopstr+$40(a0),d5
  1793.  
  1794.     move.l    #34642*2,d2
  1795.     tst.l    var_audper+$40(a0)
  1796.     beq    rotpix.c3
  1797.     divs.w    2+var_audper+$40(a0),d2
  1798.     ext.l    d2
  1799.     add.l    d2,var_audcnt+$40(a0)
  1800.     move.l    var_audcnt+$40(a0),d2
  1801.     add.l    d2,a5
  1802. rotpix.c3
  1803.         
  1804.     move.l    var_audstr+$60(a0),a6
  1805.     move.l    var_audreplen+$60(a0),d6
  1806.     cmp.l    #1,d6
  1807.     bne    rotpix.d4
  1808.     move.l    var_audlen+$60(a0),d6
  1809. rotpix.d4
  1810.     add.l    d6,d6
  1811.     add.l    var_audlopstr+$60(a0),d6
  1812.  
  1813.     move.l    #34642*2,d2
  1814.     tst.l    var_audper+$60(a0)
  1815.     beq    rotpix.c4
  1816.     divs.w    2+var_audper+$60(a0),d2
  1817.     ext.l    d2
  1818.     add.l    d2,var_audcnt+$60(a0)
  1819.     move.l    var_audcnt+$60(a0),d2
  1820.     add.l    d2,a6
  1821. rotpix.c4
  1822.  
  1823.     tst.w    d0
  1824.     bne    rotpix.g1
  1825.     bsr    rot4
  1826.     bra    rotpix.end
  1827. rotpix.g1
  1828.     cmp.w    #1,d0
  1829.     bne    rotpix.g2
  1830.     bsr    rotall
  1831.     bra    rotpix.end
  1832. rotpix.g2
  1833.  
  1834.  
  1835. rotpix.end    
  1836.     movem.l    (sp)+,d0-d7/a0-a6
  1837.     rts
  1838.  
  1839. rot4        
  1840.     movem.l    d0-d7/a0-a6,-(sp)
  1841.  
  1842.     add.l    #(rotpic_y/4)*rotpic_x*rotpic_d+1,a3
  1843.     move.l    a3,a1
  1844.     add.l    #(rotpic_y/2)*rotpic_x*rotpic_d,a1
  1845.  
  1846.     move.w    #(rotpic_x/2)-3,d1        ;bytes
  1847. rot4.c
  1848.  
  1849.     move.w    #8-1,d0                ;bits
  1850. rot4.a
  1851.     clr.l    d2
  1852.     cmp.l    a2,d3
  1853.     bgt    rot4.a1
  1854.     cmp.l    #1,var_audreplen(a0)
  1855.     beq    rot4.b1
  1856.     move.l    var_audlopstr(a0),a2
  1857.     sub.l    var_audstr(a0),a2
  1858.     move.l    a2,var_audcnt(a0)
  1859.     move.l    var_audlopstr(a0),a2
  1860.     move.l    var_audreplen(a0),d3
  1861.     add.l    d3,d3
  1862.     add.l    a2,d3
  1863. rot4.a1
  1864.     move.b    (a2)+,d2
  1865.     ext.w    d2
  1866.     lsr.l    #1,d2
  1867.     ext.w    d2
  1868.     ext.l    d2
  1869.     muls.w    #rotpic_x*rotpic_d,d2
  1870. rot4.b1
  1871.     bset    d0,(a3,d2)
  1872.  
  1873.     clr.l    d2
  1874.     cmp.l    a4,d4
  1875.     bgt    rot4.a2
  1876.     cmp.l    #1,var_audreplen+$20(a0)
  1877.     beq    rot4.b2
  1878.     move.l    var_audlopstr+$20(a0),a4
  1879.     sub.l    var_audstr+$20(a0),a4
  1880.     move.l    a4,var_audcnt+$20(a0)
  1881.     move.l    var_audlopstr+$20(a0),a4
  1882.     move.l    var_audreplen+$20(a0),d4
  1883.     add.l    d4,d4
  1884.     add.l    a4,d4
  1885. rot4.a2
  1886.     move.b    (a4)+,d2
  1887.     ext.w    d2
  1888.     lsr.l    #1,d2
  1889.     ext.w    d2
  1890.     ext.l    d2
  1891.     muls.w    #rotpic_x*rotpic_d,d2
  1892. rot4.b2
  1893.     bset    d0,rotpic_x/2(a3,d2)
  1894.  
  1895.     clr.l    d2
  1896.     cmp.l    a5,d5
  1897.     bgt    rot4.a3
  1898.     cmp.l    #1,var_audreplen+$40(a0)
  1899.     beq    rot4.b3
  1900.     move.l    var_audlopstr+$40(a0),a5
  1901.     sub.l    var_audstr+$40(a0),a5
  1902.     move.l    a5,var_audcnt+$40(a0)
  1903.     move.l    var_audlopstr+$40(a0),a5
  1904.     move.l    var_audreplen+$40(a0),d5
  1905.     add.l    d5,d5
  1906.     add.l    a5,d5
  1907. rot4.a3
  1908.     move.b    (a5)+,d2
  1909.     ext.w    d2
  1910.     lsr.l    #1,d2
  1911.     ext.w    d2
  1912.     ext.l    d2
  1913.     muls.w    #rotpic_x*rotpic_d,d2
  1914. rot4.b3
  1915.     bset    d0,rotpic_x/2(a1,d2)
  1916.  
  1917.     clr.l    d2
  1918.     cmp.l    a6,d6
  1919.     bgt    rot4.a4
  1920.     cmp.l    #1,var_audreplen+$60(a0)
  1921.     beq    rot4.b4
  1922.     move.l    var_audlopstr+$60(a0),a6
  1923.     sub.l    var_audstr+$60(a0),a6
  1924.     move.l    a6,var_audcnt+$60(a0)
  1925.     move.l    var_audlopstr+$60(a0),a6
  1926.     move.l    var_audreplen+$60(a0),d6
  1927.     add.l    d6,d6
  1928.     add.l    a6,d6
  1929. rot4.a4
  1930.     move.b    (a6)+,d2
  1931.     ext.w    d2
  1932.     lsr.l    #1,d2
  1933.     ext.w    d2
  1934.     ext.l    d2
  1935.     muls.w    #rotpic_x*rotpic_d,d2
  1936. rot4.b4
  1937.     bset    d0,(a1,d2)
  1938.  
  1939.     dbra    d0,rot4.a    
  1940.  
  1941.     add.l    #1,a3                ;next byte
  1942.     add.l    #1,a1                ;next byte
  1943.     dbra    d1,rot4.c
  1944.  
  1945. rot4.end    
  1946.     movem.l    (sp)+,d0-d7/a0-a6
  1947.     rts
  1948.  
  1949. rotall        
  1950.     movem.l    d0-d7/a0-a6,-(sp)
  1951.  
  1952.     add.l    #(rotpic_y/2)*rotpic_x*rotpic_d,a3
  1953.  
  1954.     move.w    #rotpic_x-1,d1        ;bytes
  1955. rotall.c
  1956.  
  1957.     move.w    #8-1,d0                ;bits
  1958. rotall.a
  1959.     clr.l    d2
  1960.     cmp.l    a2,d3
  1961.     bgt    rotall.a1
  1962.     cmp.l    #1,var_audreplen(a0)
  1963.     beq    rotall.b1
  1964.     move.l    var_audlopstr(a0),a2
  1965.     sub.l    var_audstr(a0),a2
  1966.     move.l    a2,var_audcnt(a0)
  1967.     move.l    var_audlopstr(a0),a2
  1968.     move.l    var_audreplen(a0),d3
  1969.     add.l    d3,d3
  1970.     add.l    a2,d3
  1971. rotall.a1
  1972.     move.b    (a2)+,d2
  1973.     ext.w    d2
  1974.     ext.l    d2
  1975.     muls.w    #rotpic_x*rotpic_d,d2
  1976. rotall.b1
  1977.     bset    d0,(a3,d2)
  1978.  
  1979.     clr.l    d2
  1980.     cmp.l    a4,d4
  1981.     bgt    rotall.a2
  1982.     cmp.l    #1,var_audreplen+$20(a0)
  1983.     beq    rotall.b2
  1984.     move.l    var_audlopstr+$20(a0),a4
  1985.     sub.l    var_audstr+$20(a0),a4
  1986.     move.l    a4,var_audcnt+$20(a0)
  1987.     move.l    var_audlopstr+$20(a0),a4
  1988.     move.l    var_audreplen+$20(a0),d4
  1989.     add.l    d4,d4
  1990.     add.l    a4,d4
  1991. rotall.a2
  1992.     move.b    (a4)+,d2
  1993.     ext.w    d2
  1994.     ext.l    d2
  1995.     muls.w    #rotpic_x*rotpic_d,d2
  1996. rotall.b2
  1997.     bset    d0,(a3,d2)
  1998.  
  1999.     clr.l    d2
  2000.     cmp.l    a5,d5
  2001.     bgt    rotall.a3
  2002.     cmp.l    #1,var_audreplen+$40(a0)
  2003.     beq    rotall.b3
  2004.     move.l    var_audlopstr+$40(a0),a5
  2005.     sub.l    var_audstr+$40(a0),a5
  2006.     move.l    a5,var_audcnt+$40(a0)
  2007.     move.l    var_audlopstr+$40(a0),a5
  2008.     move.l    var_audreplen+$40(a0),d5
  2009.     add.l    d5,d5
  2010.     add.l    a5,d5
  2011. rotall.a3
  2012.     move.b    (a5)+,d2
  2013.     ext.w    d2
  2014.     ext.l    d2
  2015.     muls.w    #rotpic_x*rotpic_d,d2
  2016. rotall.b3
  2017.     bset    d0,(a3,d2)
  2018.  
  2019.     clr.l    d2
  2020.     cmp.l    a6,d6
  2021.     bgt    rotall.a4
  2022.     cmp.l    #1,var_audreplen+$60(a0)
  2023.     beq    rotall.b4
  2024.     move.l    var_audlopstr+$60(a0),a6
  2025.     sub.l    var_audstr+$60(a0),a6
  2026.     move.l    a6,var_audcnt+$60(a0)
  2027.     move.l    var_audlopstr+$60(a0),a6
  2028.     move.l    var_audreplen+$60(a0),d6
  2029.     add.l    d6,d6
  2030.     add.l    a6,d6
  2031. rotall.a4
  2032.     move.b    (a6)+,d2
  2033.     ext.w    d2
  2034.     ext.l    d2
  2035.     muls.w    #rotpic_x*rotpic_d,d2
  2036. rotall.b4
  2037.     bset    d0,(a3,d2)
  2038.  
  2039.     dbra    d0,rotall.a    
  2040.  
  2041.     add.l    #1,a3                ;next byte
  2042.     dbra    d1,rotall.c
  2043.  
  2044. rotall.end    
  2045.     movem.l    (sp)+,d0-d7/a0-a6
  2046.     rts
  2047.  
  2048.  
  2049. rotbuf        dc.l    0
  2050. rotcopbuf    dc.l    0
  2051. rotbck        dc.l    0
  2052. rotpos        dc.l    0
  2053. rotcopstr    dc.l    $73
  2054.  
  2055. ;rotemp        ds.b    rotpic_x*4
  2056.  
  2057.         cnop    0,8
  2058. rotpic
  2059.         ifnd    ocs
  2060.         dc.l    'PICT'
  2061.         dc.w    rotpic_x,rotpic_y,rotpic_d,1,0
  2062.         ds.b    8*4
  2063.         ds.b    16
  2064.         dc.w    2-1
  2065.         dc.w    $000,0,$fff,0
  2066.         ds.l    256-2
  2067.         ds.b    rotpic_x*rotpic_y*rotpic_d
  2068.         endc
  2069.  
  2070.         ifd    ocs
  2071.         dc.l    'PICT'
  2072.         dc.w    rotpic_x,rotpic_y,rotpic_d,1,0
  2073.         ds.b    4*4
  2074.         dc.w    2-1
  2075.         dc.w    $000,$fff
  2076.         ds.w    256-2
  2077.         ds.b    rotpic_x*rotpic_y*rotpic_d
  2078.         endc
  2079. rotpic.e
  2080.  
  2081. rotpic2
  2082.         ifnd    ocs
  2083.         dc.l    'PICT'
  2084.         dc.w    rotpic_x,rotpic_y,rotpic_d,1,0
  2085.         ds.b    8*4
  2086.         ds.b    16
  2087.         dc.w    2-1
  2088.         dc.w    $000,0,$fff,0
  2089.         ds.l    256-2
  2090.         ds.b    rotpic_x*rotpic_y*rotpic_d
  2091.         endc
  2092.  
  2093.         ifd    ocs
  2094.         dc.l    'PICT'
  2095.         dc.w    rotpic_x,rotpic_y,rotpic_d,1,0
  2096.         ds.b    4*4
  2097.         dc.w    2-1
  2098.         dc.w    $000,$fff
  2099.         ds.w    256-2
  2100.         ds.b    rotpic_x*rotpic_y*rotpic_d
  2101.         endc
  2102.  
  2103. ;rotcop1
  2104. ;    dc.w    $80,0,$82,0
  2105. ;
  2106. ;rotcoptus.s
  2107. ;    dc.w    $003d,$fffe
  2108. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2109. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2110. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2111. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2112. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2113. ;rotcoptus.e
  2114. ;
  2115. ;    rept    rotcop_y-1
  2116. ;    dc.w    $003d,$fffe
  2117. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2118. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2119. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2120. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2121. ;    dc.w    $180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0,$180,0
  2122. ;    endr
  2123. ;    dc.w    $088,$000
  2124.  
  2125.  
  2126. ;rotcoptus_l    equ    rotcoptus.e-rotcoptus.s
  2127. ;rotcprbck1    equ    (rotcoptus_l*(rotpic_y-124))+8
  2128. ;rotcprbck1ntsc    equ    (rotcoptus_l*(rotpic_y-180))+8
  2129. ;rotcprend1ntsc    equ    (rotcoptus_l*(rotpic_y-60))+8
  2130.  
  2131. rot.e
  2132.  
  2133. ;**********************************************************************
  2134.  
  2135.